package com.android.support.lib.universal.util;

import java.text.DecimalFormat;

import android.annotation.SuppressLint;
import android.graphics.Bitmap;
import android.os.Build;

public class Utilnum {
	
	/**
	 * 将字符串转换为整形。精确到小数后两位（其后全部割舍，不采用四舍五入），
	 * 转换后的整数是原有的100倍（因为 微信的1对应0.01）
	 * @param s
	 * @return
	 */
	public  String StrToInt(String s){
		Double b=Double.parseDouble(s)*100;
		DecimalFormat format = new DecimalFormat( "0.00 "); 
		b = Double.parseDouble(format.format(b));
		int i=b.intValue();
		return i+"";
	}
	
	private  DecimalFormat format = new DecimalFormat("0.0");// 格式

	/**
	 * 计算大小
	 * 
	 * @param data
	 *            数据大小
	 * @return
	 */
	public  String calculateSize(double data) {
		if (data < 1024 && data >= 0) {
			data = Double.parseDouble(format.format(data));
			return data + "B";
		} else if (data >= 1024 && data < 1024 * 1024) {
			data = data / 1024;
			data = Double.parseDouble(format.format(data));
			return data + "KB";
		} else if (data >= 1024 * 1024) {
			data = data / 1024 / 1024;
			data = Double.parseDouble(format.format(data));
			return data + "MB";
		}
		return null;
	}
	
	/**
	 * 计算大小
	 * 
	 * @param data
	 *            数据大小
	 * @return
	 */
	public  String calculateSize(long data) {
		if (data < 1024 && data >= 0) {
			data = data;
			return data + "B";
		} else if (data >= 1024 && data < 1024 * 1024) {
			data = data / 1024;
			return data + "KB";
		} else if (data >= 1024 * 1024) {
			data = data / 1024 / 1024;
			return data + "MB";
		}
		return null;
	}

	/**
	 * 计算百分比
	 * 
	 * @param x
	 *            当前数值
	 * @param total
	 *            总数值
	 * @return
	 */
	public  String getPercent(long x, long total) {
		String result = "";// 接受百分比的值
		double x_double = x * 1.0;
		double tempresult = x / (double) total;
		// NumberFormat nf = NumberFormat.getPercentInstance(); 注释掉的也是一种方法
		// nf.setMinimumFractionDigits( 2 ); 保留到小数点后几位
		DecimalFormat df1 = new DecimalFormat("0.00%"); // ##.00%
														// 百分比格式，后面不足2位的用0补齐
		// result=nf.format(tempresult);
		result = df1.format(tempresult);
		return result;
	}
	
	/**
	 * 获取Bitmap图像的大小
	 * @param bitmap
	 * @return
	 */
	@SuppressLint("NewApi")
	public  long getBitmapsize(Bitmap bitmap) {

		//在Android API（12）之前的版本和后来的版本是不一样：
		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) {
			return bitmap.getByteCount();
		}
		return bitmap.getRowBytes() * bitmap.getHeight();

	}
	
}
